package com.niit.scala

import java.util.Scanner

/*
总结：
1.Scala中的Class 和 Java中的Class不一样的。不能在Scala中的Class文件做程序入口
    Object文件中才能做程序入口
2.Scala可以完美的调用Java中的类库
3.如果多行代码写在一行内，则前边的语句必须加上分号，最后一条语句分号可以省略
4.Scala中常量分为两种：1.字面值常量 2.自定义常量
5.var用来定义变量 val用来定义常量 格式：val/var 变量名：变量类型 = 值
6.Scala可以自动根据变量的值来推断变量的类型
7.插入值表达式可以有效避免大量字符串的拼接。注意：在定义字符串之前添加s,在字符串中，可以使用${}来引用变量或者编写表达式
 */

object Base_01 {

  def main(args: Array[String]): Unit = {
    //main方法 就是程序入口方法

    //1.在控制台中打印Hello World!
   /*
    print("Hello World!")//不带换行功能
    println("Hello World!")  //自带换行功能
    */

    //2.在控制台中输入  你想对右边的人要说的话
    /*
    println("请输入想对右边的人要说的话：")
    println("我想对你说：" + new Scanner(System.in).nextLine())
     */

    //3.分号的使用
    /*
    println("星期四");println("星期五");println("放假！")
     */

    //4.Scala中的字面值 字面值常量 （常量：不可改变的量称之为常量）
    println(10) //10:整型 字面值常量
    println(-35)//-35:整型 字面值常量
    println(10.3)//10.3:浮点型 字面值常量
    println('a')//'a'：字符常量 用单引号包裹起来的叫做字符
    println("scala")//"scala":字符串常量 用双引号包裹起来的叫做字符串
    println(true,false)//true,false:布尔常量 。println打印可以输出多个值，每个值之间用逗号作为间隔
    println(null)//null 空常量

    //5.变量
    /*
    Java : int a = 1
    Scala: var 变量名:变量类型 = 值
           val 常量名:常量类型 = 值
     */
   /*
    val name:String = "Tom"
    var age:Int = 18
    println(name,age)
    age = 19
    println(name,age)

    */

    //6.类型推断
    /*
    var a = "Tony" //a 的数据类型根据值进行推断 为 String。后面重新赋值也只能是字符串类型
    val b = 21
    //a = 20
    println(a,b)
     */

    //7.插入值表达式
    /*
      语法：var/val 变量名 = s"${变量/表达式}字符串"
      需要：请定义诺干个变量，分别保存 张三 23 男。最后用一个字符串保存这些信息
     */
    //传统方式
    val name = "张三";val age = 23;val sex = "男"
    val res = "姓名："+name + ",年龄："+ age +",性别："+sex
    println(res)
    //插入值表达式
    val res2 = s"姓名：${name},年龄：${age},性别：${sex}"
    println(res2)
  }

}
